home *** CD-ROM | disk | FTP | other *** search
/ Fritz: All Fritz / All Fritz.zip / All Fritz / FILES / PROGMISC / PCSSP.LZH / PC-SSP.ZIP / STATRAND.ZIP / RANDU.FOR < prev   
Text File  |  1985-11-29  |  3KB  |  62 lines

  1. C
  2. C     ..................................................................
  3. C
  4. C        SUBROUTINE RANDU
  5. C
  6. C        PURPOSE
  7. C           COMPUTES UNIFORMLY DISTRIBUTED RANDOM REAL NUMBERS BETWEEN
  8. C           0 AND 1.0 AND RANDOM INTEGERS BETWEEN ZERO AND
  9. C           2**31. EACH ENTRY USES AS INPUT AN INTEGER RANDOM NUMBER
  10. C           AND PRODUCES A NEW INTEGER AND REAL RANDOM NUMBER.
  11. C
  12. C        USAGE
  13. C           CALL RANDU(IX,IY,YFL)
  14. C
  15. C        DESCRIPTION OF PARAMETERS
  16. C           IX - FOR THE FIRST ENTRY THIS MUST CONTAIN ANY ODD INTEGER
  17. C                NUMBER WITH NINE OR LESS DIGITS. AFTER THE FIRST ENTRY,
  18. C                IX SHOULD BE THE PREVIOUS VALUE OF IY COMPUTED BY THIS
  19. C                SUBROUTINE.
  20. C           IY - A RESULTANT INTEGER RANDOM NUMBER REQUIRED FOR THE NEXT
  21. C                ENTRY TO THIS SUBROUTINE. THE RANGE OF THIS NUMBER IS
  22. C                BETWEEN ZERO AND 2**31
  23. C           YFL- THE RESULTANT UNIFORMLY DISTRIBUTED, FLOATING POINT,
  24. C                RANDOM NUMBER IN THE RANGE 0 TO 1.0
  25. C
  26. C        REMARKS
  27. C           THIS SUBROUTINE IS SPECIFIC TO SYSTEM/360 AND WILL PRODUCE
  28. C           2**29 TERMS BEFORE REPEATING.  THE REFERENCE BELOW DISCUSSES
  29. C           SEEDS (65539 HERE), RUN PROBLEMS, AND PROBLEMS CONCERNING
  30. C           RANDOM DIGITS USING THIS GENERATION SCHEME.  MACLAREN AND
  31. C           MARSAGLIA, JACM 12, P. 83-89, DISCUSS CONGRUENTIAL
  32. C           GENERATION METHODS AND TESTS.  THE USE OF TWO GENERATORS OF
  33. C           THE RANDU TYPE, ONE FILLING A TABLE AND ONE PICKING FROM THE
  34. C           TABLE, IS OF BENEFIT IN SOME CASES.  65549 HAS BEEN
  35. C           SUGGESTED AS A SEED WHICH HAS BETTER STATISTICAL PROPERTIES
  36. C           FOR HIGH ORDER BITS OF THE GENERATED DEVIATE.
  37. C           SEEDS SHOULD BE CHOSEN IN ACCORDANCE WITH THE DISCUSSION
  38. C           GIVEN IN THE REFERENCE BELOW.  ALSO, IT SHOULD BE NOTED THAT
  39. C           IF FLOATING POINT RANDOM NUMBERS ARE DESIRED,AS ARE
  40. C           AVAILABLE FROM RANDU, THE RANDOM CHARACTERISTICS OF THE
  41. C           FLOATING POINT DEVIATES ARE MODIFIED AND IN FACT THESE
  42. C           DEVIATES HAVE HIGH PROBABILITY OF HAVING A TRAILING LOW
  43. C           ORDER ZERO BIT IN THEIR FRACTIONAL PART.
  44. C
  45. C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
  46. C           NONE
  47. C
  48. C        METHOD
  49. C           POWER RESIDUE METHOD DISCUSSED IN IBM MANUAL C20-8011,
  50. C           RANDOM NUMBER GENERATION AND TESTING
  51. C
  52. C     ..................................................................
  53. C
  54.       SUBROUTINE RANDU(IX,IY,YFL)
  55.       IY=IX*65539
  56.       IF(IY)5,6,6
  57.     5 IY=IY+2147483647+1
  58.     6 YFL=IY
  59.       YFL=YFL*.4656613E-9
  60.       RETURN
  61.       END
  62.